<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>函数参数</title>
  </head>
  <body>
    <!-- 语法：实参数=形参数 -->
    <!-- 案例：加法函数 -->
    <!-- <script>
        // 定义函数
        // a,b为两个【形式参数】（形参）
        function add(a,b){
            return a+b
        }

        console.log( 
            // 调用函数
            // 12 13为两个【实际参数】（实参）
            add(12,13) 
        );
    </script> -->

    <!-- <script>
        /* 
        计算a,b的和差积商之一
        a b 待计算的两个数据
        operator 运算符
        */
        function calculate(a,b,operator){
            switch (operator) {
                case "+":
                    console.log("%s与%s之和为%s",a,b,a+b);
                    break;
                case "-":
                    console.log("%s与%s之差为%s",a,b,a-b);
                    break;
                case "*":
                    console.log("%s与%s之积为%s",a,b,a*b);
                    break;
                case "/":
                    console.log("%s与%s之商为%s",a,b,a/b);
                    break;
            
                default:
                    console.log("更多运算功能开发中,敬请期待！");
                    break;
            }
        }

        calculate(2,3,"+")//求2 3之和
        calculate(2,3,"-")//求2 3之差
        calculate(2,3,"*")//求2 3之积
        calculate(2,3,"/")//求2 3之商
        calculate(2,3,"%")//
    </script> -->

    <!-- 语法：实参数<形参数 参数有默认值 -->
    <!-- 案例：计算函数 操作符默认为加号 -->
    <!-- <script>
      function calculate2(a, b, operator="+") {
        switch (operator) {
          case "+":
            console.log("%s与%s之和为%s", a, b, a + b);
            break;
          case "-":
            console.log("%s与%s之差为%s", a, b, a - b);
            break;
          case "*":
            console.log("%s与%s之积为%s", a, b, a * b);
            break;
          case "/":
            console.log("%s与%s之商为%s", a, b, a / b);
            break;

          default:
            console.log("更多运算功能开发中,敬请期待！");
            break;
        }
      }
      calculate2(2,3)//5
      calculate2(2,3,"*")//6
    </script> -->

    <!-- 语法：实参数 > 形参数，通过arguments获取全部参数 -->
    <!-- 案例：简单看一下arguments的用途 -->
    <!-- 场景：主要用于框架代码 -->
    <!-- <script>
      function add(a, b) {
        console.log(a + b);//打印前两个实参的和
        console.log("arguments=",arguments);
      }
      add(2,3,4,5,6,7,8)
    </script> -->

    <!-- 语法：不定长参数（出现在参数列表末尾） -->
    <!-- 案例1：xxx等人关注运算结果 -->
    <!-- 案例2：任意数量参数的加法 -->
    <script>
        /* 
        name 发朋友圈的人
        content 朋友圈内容
        likers  点赞者（人数不限）
        */
        function pengyouquan(name,content,...likers){
            console.log("%s发布了最新的朋友圈:%s",name,content);
            console.log(likers,"表示很赞");
        }
        pengyouquan(
            "班长",
            "永平街道派出所的wifi真赞!",
            "光头强","痞子蔡","逵哥","唐山大兄"
        )
    </script>

  </body>
</html>
